package com.tars.common.utils.sign;

import org.apache.commons.codec.digest.DigestUtils;

import java.util.UUID;

public class SHA512Utils {
    //SHA512加密

    //创建SHA512对象
    public static String SHA512(String code) {
        byte[] sha512Bytes = DigestUtils.sha512(code);
        //加密后的数据类型为byte[]，这里将它转化为字符串类型
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < sha512Bytes.length; i++) {
            String hex = Integer.toHexString(0xff & sha512Bytes[i]);
            if (hex.length() == 1) {
                stringBuffer.append('0');
            }
            stringBuffer.append(hex);
        }
        //返回值字母转下大写
        //return stringBuffer.toString().toUpperCase();
        return stringBuffer.toString();
    }

    //进行密码校验   userPwd用户输入的密码  dbPwd数据库中的密码  salt数据库中的盐
    public static boolean checkPassword(String userPass, String dbPass, String salt) {
        if (dbPass.equals(SHA512(userPass+salt))) {
            return true;
        } else {
            return false;
        }
    }

    //我这里用随机uuid来作为盐值，看个人的选择了
    //获得UUID
    public static String getUUID() {
        return UUID.randomUUID().toString().replace("-", "");
    }

    //调用获取uuid的方法来获得盐值
    public static String getSalt() {
        return SHA512Utils.getUUID();
    }
}

